﻿Imports Testeitor.DAL
Imports System.Data.SqlClient
Imports Testeitor.Entidades

Public Class EstadoDAO
    Inherits DAOBase

    Public Overrides Function CargarEntidad(ByVal reader As System.Data.IDataReader, ByRef stack As Stack(Of Integer)) As Entidades.EntityBase
        Dim entidad As New EstadoEntity

        Dim temp As Object
        'Campo Id
        entidad.Id = Convert.ToInt32(reader("id"))
        'Resto de los campos
        temp = reader("entidad")
        If temp.Equals(DBNull.Value) Then
            entidad.Entidad = String.Empty
        Else
            entidad.Entidad = Convert.ToString(reader("entidad"))
        End If

        temp = reader("descripcion")
        If temp.Equals(DBNull.Value) Then
            entidad.Descripcion = String.Empty
        Else
            entidad.Descripcion = Convert.ToString(reader("descripcion"))
        End If

        CargarEntidad = entidad
    End Function

    Public Overrides Sub CargarRelacion(ByRef entidad As Entidades.EntityBase, ByRef stack As Stack(Of Integer))

    End Sub

    Public Overrides Function commandActualizar(ByRef ent As Entidades.EntityBase) As System.Data.SqlClient.SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("UPDATE Estado SET entidad = @entidad, descripcion = @descripcion WHERE id = @id")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@entidad", DirectCast(ent, EstadoEntity).Entidad))
        cmd.Parameters.Add(New SqlParameter("@descripcion", DirectCast(ent, EstadoEntity).Descripcion))

        commandActualizar = cmd
    End Function

    Public Overrides Function commandEliminar(ByVal id As Integer) As System.Data.SqlClient.SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("DELETE FROM Estado WHERE id = @id")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@id", id))

        commandEliminar = cmd
    End Function

    Public Overrides Function commandInsertar(ByRef ent As Entidades.EntityBase) As System.Data.SqlClient.SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("INSERT INTO Estado VALUES(@entidad, @descripcion)")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@entidad", DirectCast(ent, EstadoEntity).Entidad))
        cmd.Parameters.Add(New SqlParameter("@descripcion", DirectCast(ent, EstadoEntity).Descripcion))

        commandInsertar = cmd
    End Function

    Public Overrides Function commandSeleccionar(ByVal id As Integer) As System.Data.SqlClient.SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("SELECT * FROM Estado WHERE id = @id")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@id", id))

        commandSeleccionar = cmd
    End Function

    Public Overrides Function commandSeleccionarWhere(ByVal where As String) As SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("SELECT * FROM Estado WHERE " + where)
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@where", where))
        commandSeleccionarWhere = cmd
    End Function

    Public Overrides Function commandSeleccionarTodas() As System.Data.SqlClient.SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("SELECT * FROM Estado")

        commandSeleccionarTodas = cmd
    End Function
End Class
